#pragma once
#include "ZenFont.h"
#include "Win.h"
#include "resource.h"
#include "ZenEngine.h"
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include "ZenMouse.h"
#include "ZenSound.h"
#define MAIN_MENU_LENGTH 5
#define OPTIONS_MENU_LENGTH 4
#define CONTROLS_MENU_LENGTH 5
#define HIGHSCORES_MENU_LENGTH 1
#define NEW_GAME 0
#define OPTIONS	2
#define QUIT	4
#define NEW_GAME_2_PLAYERS 1
#define HIGHSCORES 3
#define OPTIONS_BACK	3
#define OPTIONS_SOUND	0
#define OPTIONS_MUSIC	1
#define OPTIONS_CONTROLS 2
#define CONTROLS_GO_FORWARD 0
#define CONTROLS_GO_DOWN 1
#define CONTROLS_GO_LEFT 2
#define CONTROLS_GO_RIGHT 3
#define CONTROLS_SHOOT	6
#define CONTROLS_USE_BONUS 5
#define CONTROLS_BACK 4
#define HIGHSCORES_BACK 0
#define POSITION_X	100
#define POSITION_Y	155
#define SHIFT	60

static const char new_game[]="New Game - One Player";
static const char new_game_2_players[]="New Game - Two Players";
static const char options[]="Options";
static const char highscores[]="High Scores";
static const char quit[]="Quit";
static const char sound[]="Sound";
static const char video[]="Video";
static const char screenResolution[]="Screen Resolution";
static const char controls[]="Controls";
static const char music[]="Music";
static const char back[]="Back";
static const char goForward[]=	"Go forward   UP";
static const char goDown[]=		"Go down      DOWN";
static const char goLeft[]=		"Go Left      LEFT";
static const char goRight[]=	"Go right     RIGHT";
static const char shoot[]=		"Shoot        D";
static const char useBonus[]=	"Use bonus    S";
//static const char back[]="Back";
//static const char back[]="Back";
//static const char back[]="Back";
//static const char on="On";
//static const char off="Off";



class MenuScene
{
public:
	MenuScene(void);
	~MenuScene(void);

	HRESULT Init(CZenEngine * zen, CZenMouse * mouse, CZenSound* m_Sound, int height, int width);
	void Render();


	CZenSound * m_Sound;
	int m_currentMainMenuItem;
	int m_currentOptionsMenuItem;
	int m_currentControlsMenuItem;
	char *m_mainMenuItems[MAIN_MENU_LENGTH];
	char *m_optionsMenuItems[OPTIONS_MENU_LENGTH];
	char *m_controlsMenuItems[CONTROLS_MENU_LENGTH];
	bool m_bMainMenu;
	bool m_bOptionsMenu;
	bool m_bSoundOnOption;
	bool m_bMusicOnOption;
	bool m_bControlsMenu;
	bool m_bHighScores;
	CZenEngine * m_ptrZen;
	CZenMouse * m_ptrZenMouse;
	POINT mousePoint;
	bool mouseControl;
	POINT HandleMouseMovePoint;

		LPDIRECT3DSURFACE8	m_pBackgroundSurface;
		LPDIRECT3DSURFACE8	m_pMouseSurface;

private:
	int m_height;
	int m_width;
public:
	bool HandleKeyInput(WPARAM wParam, int * gameOrMenu);
public:
	bool HandleMouseMove();
	bool HandleMouseDown(int * gameOrMenu);
	};
